Many of today's computer applications are capable of performing certain tasks in response to events (e.g., executing a function when receiving user input or receiving input from another device). Certain types of computer applications can be implemented by remote service providers and can be used by multiple clients from different locations. A remote service provider may offer a compute service that a client may use to configure a particular function to run at the remote service provider whenever a particular event occurs. For example, a particular function may execute whenever the compute service receives information from a web page that was entered by a user. As another example, a different function may execute whenever a new row of data is added to a database table that is maintained by the service provider.
A service provider may frequently make changes to the execution environment that runs functions for the compute service offered by the service provider. For example, an updated version of an execution environment may be created due to a kernel change or due to changes in the hardware that implements the execution environment. Due to the large number of different functions that are executed by the compute service, it can be difficult or impractical to verify that every function is compatible with the updated version of the execution environment before releasing it into production. Therefore, when an updated version of an execution environment is rolled out by a service provider, many clients may experience function errors, reduced function performance, and other function compatibility issues due to upgrading of the execution environment.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.